package com.tools.hry.xls.analysis.annotation;

import com.tools.hry.xls.analysis.extension.ExcelRule;
import com.tools.hry.xls.analysis.rule.NoneRule;

import java.lang.annotation.*;

/**
 * 标记实体为Excel实体
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ExcelEntity {
    /**
     * 该列是否必须
     *
     * @return
     */
    boolean required() default false;

    /**
     * 超过设定的异常数则抛出异常信息
     *
     * @return
     */
     int setThrowExceptionNum() default 5;

    /**
     * 超过设定的异常数则抛出异常信息
     *
     * @return
     */
    boolean isIgnoreRowCount() default false;

    /**
     * 该列只有一个不通过校验就忽略当前行
     *
     * @return
     */
    boolean isRemoved() default true;

    /**
     * 校验规则类
     *
     * @return
     */
    @SuppressWarnings("rawtypes") Class<? extends ExcelRule> rule() default NoneRule.class;
}
